package com.java.basis.innerclass;

/**
 * 匿名内部类
 * 匿名内部类我们必须要继承一个父类或者实现一个接口，当然也仅能只继承一个父类或者实现一个接口。同时它也是没有 class 关键字，这是因为匿名内部类是直接使用 new 来生成一个对象的引用。
 * @author wangning
 * @create 2021-11-24 9:27
 */
abstract class Bird {
	private String name;

	public void setName(String name) {
		this.name = name;
	}

	public String getName() {
		return name;
	}

	public abstract int fly();
}

public class Out3 {
	public void test(Bird bird) {
		System.out.println(bird.getName() + "能飞" + bird.fly() + "米");
	}
	public static void main(String[] args) {
		final Out3 out3 = new Out3();
		out3.test(new Bird() {
			@Override
			public int fly() {
				return 2;
			}

			public String getName() {
				return "猫猫";
			}
		});
	}
}
